<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // var hd = 'hdcms';
    // function show(){
    //     return hd;
    // }
    // console.log(show())


    //函数中声明的变量，只能在函数中或者子函数中使用
    // function hd(){
    //     var web = "houdunren";
    //     function show(){
    //         console.log(web)
    //     }
    //     show();
    //     console.log(web)
    // }
    // hd();
    // console.log(web)

    // var web = 'hdcms.com';
    // function hd(){
    //      web = 'houdunren.com';
    //     console.log(web)
    // }
    // hd();
    // console.log(web)


    // var web = 'hscms';
    // function run(){
    //     web = 'houdunren';
    // }
    // run();
    // console.log(web)


    //全局污染
    // for(var i = 0;i<10;i++){
    //     console.log(i)
    // }
    // console.log(i)

    //使用let有块作用域则不会
    // let i = 100;
    // for(let i = 0 ; i < 6 ; i++){
    //     console.log(i)
    // }
    // console.log(i)

    // if(true){
    //     let web = 'hdcms',url='houdunren.com';
    //     console.log(web)
    // }
    // console.log(web)

    // if(true){
    //     let user = '向军大叔';
    //     (function(){
    //         if(true){
    //             console.log(`这是块内访问${user}`)
    //         }
    //     })();
    // }


// function run(){
//     hd = "housunren";
//     if(true){
//         let hd = "hdcms";
//         console.log(hd)
//     }
//     console.log(hd)
// }
// run();

// try{
//     const URL = "https://www.houdunren.com";
//     URL = "https://www.houduncms.com";//产生错误
// }catch(error){
//     throw new Error(error)
//     // console.log(error)
// }

// const INFO = {
//     url : 'https://www.houdunren.com',
//     port:'8080'
// };
// INFO.port = '443';
// console.log(INFO)

// const NAME = '后盾人';
// function show(){
//     const NAME = '向军大叔';
//     return NAME;
// }
// console.log(show());
// console.log(NAME)

//使用var 会重复定义
//优惠价
// var price = 90;
// //商品价格
// var price = 100;
// console.log(`商品优惠价格是${price}`);

//let声明的变量在同一作用域中不能重复声明
// let web = 'houdunren.com';
// let web = '后盾人';

//不同作用域可以重新声明
// let web = 'houdunren.com';
// if(true){
//     let web = '后盾人';
// }
// console.log(web);

//不可以重复声明   但是是可以修改的  这就是和const的不同之处
// let price = 90;
// price = 80;
// console.log(`商品的价格是：${price}`);

// let hd = 'hdcms';
// console.log(window)

// "use strict"
// //变量冻结
// const INFO = {
//     url:'https://www.houdunren.com',
//     port:'8080'
// };
// //因为使用了冻结函数   所有变量就不能被修改了
// Object.freeze(INFO);
// INFO.port = '443';
// console.log(INFO)


// let a = 100;
// let b = a;
// a = 200;
// console.log(a,b)



//引用类型多个变量使用一个对象
// let a = {
//     web : '厚度人'
// };
// let b = a ;
// a.web = 'dhcms';
// console.log(a,b)


// let hd;
// console.log(typeof hd)

// console.log(houdunren)
// let web = 'aa';
// function hd(web){
//     console.log(web);
//     return web;
// }
// console.log(hd(web))

// var hd = null;
// console.log(typeof hd)

//使用严格模式的时候必须声明变量才能使用
// "use strict";
//  url = 'houduren.com';

//使用严格模式防止污染全局
// "use strict"
// function run(){
//     web = 'houdurnen';
// }
// run();
// console.log(web)

//关键字是不能被当做变量来使用的  但是不使用严格模式是可以的   
//使用了严格模式就不允许了
// "use strict"
// var public = 'houdurnenc';

//变量参数不允许重复定义
// "use strict"
// function hd(name,name){

// }

//为单独的函数设置严格模式
// function strict(){
//     "use strict"
//     let web = '1212';
//     return '严格模式';
// }


// function nostrict(){
//     web = '1212';
//     return '不是严格模式';
// }

// strict();


// (function(){
//     "use strict"
//     let url = 'houdunrenc.com';
// })();
// "use strict";
// ({name,url} = {name:'houdunren',url:'houdunrencom'});
// console.log(name,url)




</script>
</html>